CosyOS-III API 用户参考手册  1.0.2
宏定义
事件标志组

适用于对一类事件的、多对一关系的事件同步。 更多...

事件标志组 的协作图:

宏定义

#define uExternFlagGroup(group, bits)   sCSV_ExternFlagGroup(group, bits)
 声明标志组 更多...
 
#define uDefFlagBit(bit)   sDefBitField(bit)
 定义标志位 更多...
 
#define uDefVoidBits(nvb)   sDefVoidBits(nvb)
 定义空位 更多...
 
#define uCreateFlagGroup(group)   sCSV_CreateFlagGroup(group)
 创建标志组 更多...
 
#define uWaitFlagGroup(group, tc)    sUSV_WaitFlagGroup(group, tc)
 等待标志组 更多...
 
#define uQueryFlagGroup(group)    sUSV_QueryFlagGroup(group)
 查询标志组 更多...
 
#define uClearFlagGroup(group)    sUSV_ClearFlagGroup(group)
 清除标志组 更多...
 
#define uSetFlagBit(group, bit)    uSetFlagBits(group, 1) bit)
 设置标志位 更多...
 
#define uClearFlagBit(group, bit)    uClearFlagBits(group, 1) bit)
 清除标志位 更多...
 
#define uSetFlagBits(group, nbit)    sUSV_WriteFlagBits(group, true, nbit)
 设置多标志位 更多...
 
#define uClearFlagBits(group, nbit)   sUSV_WriteFlagBits(group, false, nbit)
 清除多标志位 更多...
 

详细描述

适用于对一类事件的、多对一关系的事件同步。

某一类事件,它的发生线程会有多个,均同步至同一个事件处理线程中统一处理该类事件。

注解
名词解释
组名:标志组的名称
位名:标志位的名称
空位:空标志位
查询标志位:任务、滴答、中断中,均直接查询。

宏定义说明

#define uClearFlagBit (   group,
  bit 
)    uClearFlagBits(group, 1) bit)

清除标志位

参数
[in]group组名
[in]bit位名
返回
注解
同型服务:
tClearFlagBit(group, bit)
iClearFlagBit(group, bit)

在文件 ur_api.h1264 行定义.

#define uClearFlagBits (   group,
  nbit 
)    sUSV_WriteFlagBits(group, false, nbit)

清除多标志位

参数
[in]group组名
[in]nbit标志位的数量
[in]add...)各位名,逗号间隔
返回
注解
同型服务:
tClearFlagBits(group, nbit)
iClearFlagBits(group, nbit)

在文件 ur_api.h1288 行定义.

#define uClearFlagGroup (   group)    sUSV_ClearFlagGroup(group)

清除标志组

参数
[in]group组名
返回
注解
同型服务:
tClearFlagGroup(group)
iClearFlagGroup(group)

在文件 ur_api.h1242 行定义.

#define uCreateFlagGroup (   group)    sCSV_CreateFlagGroup(group)

创建标志组

参数
[in]group组名
[in]add={...}附加代码(赋初值)
返回

在文件 ur_api.h1206 行定义.

#define uDefFlagBit (   bit)    sDefBitField(bit)

定义标志位

参数
[in]bit位名
返回

在文件 ur_api.h1191 行定义.

#define uDefVoidBits (   nvb)    sDefVoidBits(nvb)

定义空位

参数
[in]nvb空位的数量
返回

在文件 ur_api.h1198 行定义.

#define uExternFlagGroup (   group,
  bits 
)    sCSV_ExternFlagGroup(group, bits)

声明标志组

参数
[in]group组名
[in]bits定义各标志位,分号间隔
返回

在文件 ur_api.h1184 行定义.

#define uQueryFlagGroup (   group)    sUSV_QueryFlagGroup(group)

查询标志组

参数
[in]group组名
返回
结果(bool)
返回值
false失败
true成功
注解
同型服务:
tQueryFlagGroup(group)
iQueryFlagGroup(group)

在文件 ur_api.h1232 行定义.

#define uSetFlagBit (   group,
  bit 
)    uSetFlagBits(group, 1) bit)

设置标志位

参数
[in]group组名
[in]bit位名
返回
注解
同型服务:
tSetFlagBit(group, bit)
iSetFlagBit(group, bit)

在文件 ur_api.h1253 行定义.

#define uSetFlagBits (   group,
  nbit 
)    sUSV_WriteFlagBits(group, true, nbit)

设置多标志位

参数
[in]group组名
[in]nbit标志位的数量
[in]add...)各位名,逗号间隔
返回
注解
同型服务:
tSetFlagBits(group, nbit)
iSetFlagBits(group, nbit)

在文件 ur_api.h1276 行定义.

#define uWaitFlagGroup (   group,
  tc 
)    sUSV_WaitFlagGroup(group, tc)

等待标志组

参数
[in]group组名
[in]tc滴答周期(超时时间)
+0:立即返回
~0:无限等待
返回
结果(bool)
返回值
false失败
true成功
警告
不支持在临界区中,包括任务临界区、服务层临界区、全局临界区,或关闭总中断时调用。
事件的各个发生线程中设置标志位后,应调用 uClearBlock(task) 来手动完成事件同步。

在文件 ur_api.h1220 行定义.